package cn.yunyichina.provider.iface.entity.alipay;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 支付宝常量
 * Created by Lullaby on 2017/5/16.
 */
@Getter
@Setter
public class Alipay implements Serializable {

    public static final String SUCCESS_CODE = "10000";

    public enum Scene {

        BARCODE("bar_code"), WAVECODE("wave_code");

        private String value;

        Scene(String value) {
            this.value = value;
        }

        public String getValue() {
            return this.value;
        }

    }

    /**
     * 支付金额信息
     */
    @Getter
    @Setter
    public static class FundBill implements Serializable {

        private String amount; // 支付渠道

        private String fundChannel; // 支付金额

    }

    /**
     * 支付交易资金渠道
     */
    @Getter
    @Setter
    public static class TradeFundBill implements Serializable {

        private String fundChannel; // 交易使用的资金渠道

        private String amount; // 该支付工具类型所使用的金额

        private String realAmount; // 渠道实际付款金额

        private String fundType; // 渠道所使用的资金类型

    }

    /**
     * 支付交易优惠券信息
     */
    @Getter
    @Setter
    public static class VoucherDetail implements Serializable {

        private String id; // 券id

        private String name; // 券名称

        private String type; // 券类型

        private String amount; // 优惠券面额

        private String merchantContribute; // 商家出资

        private String otherContribute; // 其他出资方出资金额

        private String memo; // 优惠券备注信息

    }

    /**
     * 支付资金渠道
     */
    public enum FundChannel {

        OUTSIDECARD, // 医保卡

        COUPON, // 支付宝红包

        ALIPAYACCOUNT, // 支付宝余额

        POINT, // 集分宝

        DISCOUNT, // 折扣券

        PCARD, // 预付卡

        FINANCEACCOUNT, // 余额宝

        MCARD, // 商家储值卡

        MDISCOUNT, // 商户优惠券

        MCOUPON, // 商户红包

        PCREDIT // 蚂蚁花呗

    }

    /**
     * 交易状态说明
     */
    public enum TradeStatus {

        TRADE_FINISHED, // 交易完成

        TRADE_SUCCESS, // 支付成功

        WAIT_BUYER_PAY, // 交易创建

        TRADE_CLOSED // 交易关闭

    }

}
